package com.hongyun.tms.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 标记在属性上，用来翻译字典具体的label文本。
 * 返回给前端的JSON串中，标记了@Dict的属性，会额外多一个Str属性
 * @ Dict(code="CITY")
 * private Integer city;
 *
 * 会多生成一个cityStr给前端，如果city=1表示北京，则cityStr的值是北京
 * <p>
 * @author liPeng
 * @date 2024-06-06
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Dict {
    // 字典代码，用于指定使用哪个字典进行翻译
    String code();

    // 添加 fieldName 属性，用于指定翻译后的字段名字，默认为空字符串，
    // 不填则默认生成字段名为：  field + Str
    // 如sexStr，stateStr
    String fieldName() default "";
}
